# 我们还有很多测试用例要完成，还需要写很多的发送接收的代码
# 我们思考一下，可以发现，可以把发送接收API消息封装到库中，这样可以使我们的测试代码更加简洁
# 也为自动化测试奠定基础
import requests
from pprint import  pprint


class APIMgr:
    def __init__(self):
        self.s = requests.Session()  # 创建会话对象

    def _printResponse(self,response):
        print("\n************************************ 服务端返回结果为 :  ******************************************\n")
        print(response.status_code)

        for k,v in response.headers.items():
            print(f'{k}: {v}')

        print('')

        print(response.content.decode('utf-8'))
        print("\n***********************************************************************************************\n")

    def mgr_login(self,username='byhy',password='88888888'):    #缺省参数，也叫默认参数，是指在函数定义时给参数指定一个默认值，在调用函数时如果省略该参数，就会使用默认值
        response = self.s.post("http://127.0.0.1/api/mgr/signin",
                                 data={
                                     'username': username,
                                     'password': password
                                 }
                                 )

        self._printResponse(response)
        return response


    def customer_list(self,pagesize,pagenumber,keywords):
        response = self.s.get("http://127.0.0.1/api/mgr/customers",
              params={
                  'action' :'list_customer',
                  'pagesize' :pagesize,
                  'pagenum' :pagenumber,
                  'keywords' :keywords,
              })

        self._printResponse(response)
        return response